package com.groupbuying.common.baseutils.baseframework4plugins.basecrud.web;//package com.mengtai.baseutils.baseframework4plugins.basecrud.web;
//import com.alibaba.fastjson.JSON;
//import java.io.IOException;
//import java.io.PrintWriter;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import BaseModel;
//import BaseWebModel;
//import Pager;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.ModelAttribute;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//
///**
// * @anthor zmlmagic
// * @date 2018/12/25 5:17 PM
// * @company 蒙泰互联网公司
// * @des 备注说明
// **/
//
//public class BaseController<M extends BaseModel, QM extends BaseModel> extends BaseCommonController<M, QM> {
//    public BaseController() {
//    }
//
//    @RequestMapping(
//            value = {"/baseToAdd"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToAdd(Model model, HttpServletRequest request) {
//        this.basePreparedAddData(model, request);
//        return this.baseGetAddPage();
//    }
//
//    @RequestMapping(
//            value = {"/baseAdd"},
//            method = {RequestMethod.POST}
//    )
//    public String baseAdd(Model model, @ModelAttribute("m") M m, HttpServletRequest request) {
//        String retStr = this.baseDoAdd(model, m, request);
//        return "true".equals(retStr) ? this.baseGetAddSuccessPage() : retStr;
//    }
//
//    @RequestMapping(
//            value = {"/baseAdd2json"},
//            method = {RequestMethod.POST}
//    )
//    public String baseAdd2json(Model model, @ModelAttribute("m") M m, HttpServletRequest request, HttpServletResponse response) throws IOException {
//        String retStr = this.baseDoAdd(model, m, request);
//        if ("true".equals(retStr)) {
//            this.baseAfterAdd2json(response);
//            return null;
//        } else {
//            return retStr;
//        }
//    }
//
//    @RequestMapping(
//            value = {"/baseToUpdate"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToUpdate(Model model, HttpServletRequest request) {
//        String uuid = request.getParameter("uuid");
//        M m = (M) this.bs.getByUuid(uuid);
//        model.addAttribute("m", m);
//        this.basePreparedUpdateData(model, request);
//        return this.baseGetUpdatePage();
//    }
//
//    @RequestMapping(
//            value = {"/baseUpdate"},
//            method = {RequestMethod.POST}
//    )
//    public String baseUpdate(Model model, @ModelAttribute("m") M m, HttpServletRequest request) {
//        String retStr = this.baseDoUpdate(model, m, request);
//        return "true".equals(retStr) ? this.baseGetUpdateSuccessPage() : retStr;
//    }
//
//    @RequestMapping(
//            value = {"/baseUpdate2json"},
//            method = {RequestMethod.POST}
//    )
//    public String baseUpdate2json(Model model, @ModelAttribute("m") M m, HttpServletRequest request, HttpServletResponse response) throws IOException {
//        String retStr = this.baseDoUpdate(model, m, request);
//        if ("true".equals(retStr)) {
//            this.baseAfterUpdate2json(response);
//            return null;
//        } else {
//            return retStr;
//        }
//    }
//
//    @ResponseBody
//    @RequestMapping({"/baseUpdateCell"})
//    public String baseUpdateCell(M m, HttpServletRequest request) {
//        String opeCellName = request.getParameter("opeCellName");
//        this.bs.updateCell(m, opeCellName);
//        return "true";
//    }
//
//    @RequestMapping(
//            value = {"/baseToDelete"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToDelete(Model model, HttpServletRequest request) {
//        String uuid = request.getParameter("uuid");
//        M m = (M) this.bs.getByUuid(uuid);
//        model.addAttribute("m", m);
//        this.basePreparedDeleteData(model, request);
//        return this.baseGetDeletePage();
//    }
//
//    @RequestMapping(
//            value = {"/baseDelete"},
//            method = {RequestMethod.POST}
//    )
//    public String baseDelete(@RequestParam("uuid") String uuid, HttpServletRequest request) {
//        this.bs.delete(uuid);
//        this.baseCleanQuerySession(request);
//        return this.baseGetDeleteSuccessPage();
//    }
//
//    @RequestMapping(
//            value = {"/baseDelete2json"},
//            method = {RequestMethod.POST}
//    )
//    public String baseDelete2json(@RequestParam("uuid") String uuid, HttpServletRequest request, HttpServletResponse response) throws IOException {
//        this.bs.delete(uuid);
//        this.baseCleanQuerySession(request);
//        this.baseAfterDelete2json(response);
//        return null;
//    }
//
//    @RequestMapping(
//            value = {"/baseDeletes2json"},
//            method = {RequestMethod.POST}
//    )
//    public String baseDeletes2json(@RequestParam("selectOne") List<String> needDeleteUuids, BaseWebModel wm, HttpServletRequest request, HttpServletResponse response) throws Exception {
//        this.bs.deletes(needDeleteUuids);
//        this.baseAfterDeletes2json(response);
//        return null;
//    }
//
//    @RequestMapping(
//            value = {"/baseToInfo"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToInfo(Model model, HttpServletRequest request) {
//        String uuid = request.getParameter("uuid");
//        M m = (M) this.bs.getByUuid(uuid);
//        model.addAttribute("m", m);
//        this.basePreparedInfoData(model, request);
//        return this.baseGetInfoPage();
//    }
//
//    @RequestMapping({"/baseQueryList2json"})
//    public String baseQueryList2json(HttpServletResponse response, HttpServletRequest request) throws Exception {
//        List<BaseModel> showList = new ArrayList();
//        Map<String, Object> pageParamMap = this.baseParsePageParam(request);
//        QM qm = this.baseParseQueryModel(request);
//        qm = this.basePreparedQMFixValue(qm);
//        int iDisplayStart = (Integer)pageParamMap.get("iDisplayStart");
//        int iDisplayLength = (Integer)pageParamMap.get("iDisplayLength");
//        int iSortCol_0 = (Integer)pageParamMap.get("iSortCol_0");
//        String sortFieldName = (String)pageParamMap.get("mDataProp_" + iSortCol_0);
//        String sortTypeString = (String)pageParamMap.get("sSortDir_0");
//        Boolean needSort = (Boolean)pageParamMap.get("bSortable_" + iSortCol_0);
//        if (needSort) {
//            qm.setSortName(sortFieldName);
//            qm.setSortType(sortTypeString);
//        }
//
//        Pager pager = new Pager();
//        pager.setNowPage(iDisplayStart);
//        pager.setPageShow(iDisplayLength);
//        Pager retPager = this.bs.getByCondition(qm, pager);
//        List<M> listData = retPager.getResults();
//
//        for(int i = 0; i < listData.size(); ++i) {
//            M m = (M) listData.get(i);
//            showList.add(m);
//        }
//
//        Map<String, Object> jsonMap = new HashMap();
//        jsonMap.put("sEcho", pageParamMap.get("sEcho"));
//        jsonMap.put("iTotalRecords", retPager.getTotalNum());
//        jsonMap.put("iTotalDisplayRecords", retPager.getTotalNum());
//        jsonMap.put("aaData", showList);
//        response.setContentType("charset=UTF-8");
//        response.setCharacterEncoding("UTF-8");
//        PrintWriter out = response.getWriter();
//        out.print(JSON.toJSONString(jsonMap));
//        return null;
//    }
//
//    @RequestMapping(
//            value = {"/baseToListPage"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToListPage(@ModelAttribute("wm") BaseWebModel wm, Model model, HttpServletRequest request) {
//        this.setQueryNowPage(wm, request);
//        this.basePreparedListData(request, wm);
//        return this.baseGetListPage();
//    }
//
//    @RequestMapping(
//            value = {"/baseToListPageNoData"},
//            method = {RequestMethod.GET}
//    )
//    public String baseToListPageNoData(@ModelAttribute("wm") BaseWebModel wm, Model model, HttpServletRequest request) {
//        this.setQueryNowPage(wm, request);
//        this.basePreparedListNoInitData(request, wm);
//        return this.baseGetListPage();
//    }
//
//    @RequestMapping(
//            value = {"/baseQuery"},
//            method = {RequestMethod.POST}
//    )
//    public String baseQuery(@ModelAttribute("qm") QM qm, @ModelAttribute("wm") BaseWebModel wm, HttpServletRequest request) {
//        this.initErrorMsgMap(request);
//        if (!this.baseCheckQuery(qm, request)) {
//            return (String)request.getAttribute("ERROR_BACK_URL");
//        } else {
//            this.mappingQueryCondition(qm, request, this.moduleName);
//            this.setQueryPageParams(wm, request);
//            this.basePreparedListData(request, wm);
//            String str = this.baseGetListPage();
//            return str;
//        }
//    }
//
//    @RequestMapping(
//            value = {"/queryList"},
//            method = {RequestMethod.POST}
//    )
//    public String queryList(HttpServletResponse response, HttpServletRequest request) {
//        try {
//            List<M> showList = new ArrayList();
//            Map<String, Object> pageParamMap = this.baseParsePageParam(request);
//            QM qm = this.baseParseQueryModel(request);
//            qm = this.basePreparedQMFixValue(qm);
//            int iDisplayStart = (Integer)pageParamMap.get("iDisplayStart");
//            int iDisplayLength = (Integer)pageParamMap.get("iDisplayLength");
//            int iSortCol_0 = (Integer)pageParamMap.get("iSortCol_0");
//            String sortFieldName = (String)pageParamMap.get("mDataProp_" + iSortCol_0);
//            String sortTypeString = (String)pageParamMap.get("sSortDir_0");
//            Boolean needSort = (Boolean)pageParamMap.get("bSortable_" + iSortCol_0);
//            if (needSort) {
//                if ("checkbox".equalsIgnoreCase(sortFieldName) || "operate".equalsIgnoreCase(sortFieldName)) {
//                    sortFieldName = "opeTime";
//                }
//
//                qm.setSortName(sortFieldName);
//                qm.setSortType(sortTypeString);
//            }
//
//            Pager pager = new Pager();
//            pager.setNowPage(iDisplayStart / iDisplayLength + 1);
//            pager.setPageShow(iDisplayLength);
//            Pager pager2 = this.doQueryList(qm, pager);
//            int totalCount = pager2.getTotalNum();
//            List<M> listData = pager2.getResults();
//
//            for(int i = 0; i < listData.size(); ++i) {
//                M m = (M) listData.get(i);
//                showList.add(m);
//            }
//
//            Map<String, Object> jsonMap = new HashMap();
//            jsonMap.put("sEcho", pageParamMap.get("sEcho"));
//            jsonMap.put("iTotalRecords", totalCount);
//            jsonMap.put("iTotalDisplayRecords", totalCount);
//            jsonMap.put("aaData", showList);
//            response.setContentType("charset=UTF-8");
//            response.setCharacterEncoding("UTF-8");
//            PrintWriter out = response.getWriter();
//            out.print(JSON.toJSONString(jsonMap));
//        } catch (Exception var18) {
//            var18.printStackTrace();
//        }
//
//        return null;
//    }
//}
